#ifndef __ll_h__
#define __ll_h__

typedef void* LLData;

typedef struct _LL_Node{
    struct _LL_Node* prev;
    struct _LL_Node* next;
    LLData data;
}LL_Node;

typedef struct _LL {
	LL_Node* head;
	LL_Node* tail;
	LL_Node* current;
	int numNodes;
}LL;

void ll_init(LL *pLL);
int ll_insert(LL* ll, LL_Node* node);
void ll_moveFirst(LL* ll);
int ll_moveNext(LL* ll);
LL_Node* ll_removeNode(LL* ll, LL_Node* node);
#endif
